package org.paradise.dms.services;

import java.util.List;

import org.paradise.dms.pojo.SystemUser;
import org.paradise.dms.pojo.SystemUserGroup;
import org.paradise.dms.pojo.SystemUserGroupRole;
import org.springframework.stereotype.Service;

import com.dheaven.framework.dao.DaoException;

/**
 * 
 * Description: 系统用户管理CRUD操作的Service类
 * 
 * Copyright (c) 2008-2009 paraDise sTudio(DT). All Rights Reserved.
 * 
 * @version 1.0 2009-3-17 上午12:15:50 李双江（paradise.lsj@gmail.com）created
 */
@Service
public interface SystemUserMgrService {
	/**
	 * 
	 * Description:增加一条系统用户
	 * 
	 * @Version1.0 2009-3-17 上午12:18:31 李双江（paradise.lsj@gmail.com）创建
	 * @return
	 */
	public boolean insertSystemUser(SystemUser systemsuer);
	
	public boolean isSystemUserNameExists(String systemusername);

	/**
	 * 
	 * Description: 插入一条系统用户组权限记录
	 * 
	 * @Version1.0 2009-4-4 下午06:55:00 李双江（paradise.lsj@gmail.com）创建
	 * @param sugr
	 * @return
	 */
	public String insertSystemUserPermission(SystemUserGroupRole sugr);

	/**
	 * 
	 * Description: 更新系统用户组权限
	 * 
	 * @Version1.0 Apr 11, 2009 2:55:20 PM 李双江（paradise.lsj@gmail.com）创建
	 * @param systemusergroupid
	 * @param systemuserpermissionvalue
	 * @return
	 */
	public String updateSystemUserPermission(String systemusergroupid, String systemuserpermissionvalue);

	/**
	 * 
	 * Description:获取系统用户组情况<select框使用>
	 * 
	 * @Version1.0 2009-4-2 下午10:28:42 李双江（paradise.lsj@gmail.com）创建
	 * @return
	 */
	public List<SystemUserGroup> getSystemUserGroupInfo();

	/**
	 * 
	 * Description: 根据systemusergroupid去查看改组的所有用户
	 * 
	 * @Version1.0 2009-4-2 下午10:29:05 李双江（paradise.lsj@gmail.com）创建
	 * @param systemusergroupid
	 * @param pageSize
	 * @param startRow
	 * @return
	 */
	public List<SystemUser> getSystemUserByGroupID(String systemusergroupid, int pageSize, int startRow);

	/**
	 * 
	 * Description: 根据systemusergroupid去查看改组的所有用户的总行数
	 * 
	 * @Version1.0 2009-4-2 下午10:45:42 李双江（paradise.lsj@gmail.com）创建
	 * @param systemusergroupid
	 * @return
	 * @throws DaoException
	 */
	public int getAGroupIDSysUserTotalRows(String systemusergroupid) throws DaoException;

	/**
	 * 
	 * Description: 通过 systemuserid假删除一条系统用户
	 * 
	 * @Version1.0 2009-4-4 下午03:39:26 李双江（paradise.lsj@gmail.com）创建
	 * @param systemuserid
	 * @return
	 */
	public String delelteSystemUserByID(String systemuserid);

	/**
	 * 
	 * Description: 查询系统用户组总行数
	 * 
	 * @Version1.0 Apr 21, 2009 2:20:21 AM 李双江（paradise.lsj@gmail.com）创建
	 * @return
	 */
	public int getSystemUserGroupTotalRows();

	/**
	 * 
	 * Description:分页查询系统用户组
	 * 
	 * @Version1.0 Apr 21, 2009 2:27:01 AM 李双江（paradise.lsj@gmail.com）创建
	 * @param pageSize
	 * @param startRow
	 * @return
	 */
	public List<SystemUserGroup> listAllSysUserGroupListByPage(int pageSize, int startRow);

	/**
	 * 
	 * Description: 根据systemusergroupid去删除一条系统用户
	 * 
	 * @Version1.0 Apr 21, 2009 2:03:15 AM 李双江（paradise.lsj@gmail.com）创建
	 * @param systemusergroupid
	 * @return
	 */
	public String deleteSysUserGroupById(String systemusergroupid);

	/**
	 * 
	 * Description:更新一条系统用户
	 * 
	 * @Version1.0 Apr 26, 2009 2:03:56 AM 李双江（paradise.lsj@gmail.com）创建
	 * @param su
	 * @return
	 */
	public String updateSystemUser(SystemUser su);
}
